package com.IO;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TestFlush {
    public static void main(String[] args) throws IOException {
        //数据源
        FileReader fr = new FileReader("E:\\testFile\\a.txt");
        //目的地
        FileWriter fw = new FileWriter("E:\\testFile\\b.txt");

        int len;//接受放回值
        while((len = fr.read())!=-1){
            fw.write(len);
        }
        //这里是没有使用close关闭流
        /*
        * b.txt什么都没有
        * 关闭资源时,与FileOutputStream不同。
        * 如果不关闭,数据只是保存到缓冲区,并未保存到文件。
        * */
        fr.close();
        fw.flush();
        /*
        * flush的作用:
        * 用于清空缓冲区的数据流，进行流的操作时，数据先被读到内存中，
        * 然后再用数据写到文件中,当你数据读完时，我们如果这时调用close()方法关闭读写流，
        * 就可能造成数据丢失，因为读入数据完成时不代表写入数据完成，一部分数据可能会留在缓存区中
        * */
        fw.close();
    }
}

    